/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.vse.po1715.piskorky.sit.sit;

import java.io.*;
import java.net.*;

/**
 *
 * @author Zuzanka
 */
public class Naslouchatko extends Thread {
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================
//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
    private Sit sit;
    private Socket soket;
    private BufferedReader vstup;
    
//== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ========================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY ATRIBUTŮ TŘÍDY ==========================================
//== OSTATNÍ NESOUKROMÉ METODY TŘÍDY ===========================================
//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================
     public Naslouchatko(Socket soket) {
         this.soket = soket;
     }
//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY INSTANCÍ ================================================
    /***************************************************************************
         * Nastavení odkazu na síť.
         *
         * @param sit 
         */
     public final void setSit(Sit sit)
    {
       this.sit = sit;
    }

     /***************************************************************************
         * Tato metoda vytvoří vlákno, které čeká na stream od protihráče.
         * Jakmile stream obdrží, pošle ho síti na zpracování a čeká dál.
         *
         */
   @Override
   public void run() {
       String stream;
        try {
             vstup = new BufferedReader(new InputStreamReader(soket.getInputStream()));
             for(;;) {
                 stream = vstup.readLine();
                 sit.zpracujStream(stream);
             }
        } catch (IOException e) { 
        }
    }
//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== VNOŘENÉ A VNITŘNÍ TŘÍDY ===================================================
//== TESTOVACÍ METODY A TŘÍDY ==================================================
}
